// #include "tests.h"

// #include <list>

// /// \file Defines the tests. Please see \p tenacitas::basic::tester 
// /// for details

// using namespace std;
// using namespace tenacitas;
// using namespace tenacitas::time;
// using namespace tenacitas::time::tests;














// // **************************************
// // t000075

// // t000075::
// // t000075 () :
// //     tester::test("t000075", 
// // 	   "Creates a sequence of dates, based on a monthly by date frequency, "
// // 	   "such as: it happens every 4th 9th 14th 18th 23th and 26th, starting "
// // 	   "2008.5.2, for 4 months, every month") {}

// // t000075::
// // ~t000075() {}

// // ptr<dates> 
// // t000075::
// // expected_result() {
// //     ptr<dates> ds (new dates());

// //     ds->push_back(date(4,month::may,2008));
// //     ds->push_back(date(9,month::may,2008));
// //     ds->push_back(date(14,month::may,2008));
// //     ds->push_back(date(18,month::may,2008));
// //     ds->push_back(date(23,month::may,2008));
// //     ds->push_back(date(26,month::may,2008));

// //     ds->push_back(date(4,month::jun,2008));
// //     ds->push_back(date(9,month::jun,2008));
// //     ds->push_back(date(14,month::jun,2008));
// //     ds->push_back(date(18,month::jun,2008));
// //     ds->push_back(date(23,month::jun,2008));
// //     ds->push_back(date(26,month::jun,2008));

// //     ds->push_back(date(4,month::jul,2008));
// //     ds->push_back(date(9,month::jul,2008));
// //     ds->push_back(date(14,month::jul,2008));
// //     ds->push_back(date(18,month::jul,2008));
// //     ds->push_back(date(23,month::jul,2008));
// //     ds->push_back(date(26,month::jul,2008));

// //     ds->push_back(date(4,month::ago,2008));
// //     ds->push_back(date(9,month::ago,2008));
// //     ds->push_back(date(14,month::ago,2008));
// //     ds->push_back(date(18,month::ago,2008));
// //     ds->push_back(date(23,month::ago,2008));
// //     ds->push_back(date(26,month::ago,2008));

// //     return ds;
// // }

// // days
// // t000075::
// // create_on_days() {
// //     days on_days;
// //     on_days.push_back(4);    
// //     on_days.push_back(9);    
// //     on_days.push_back(14);    
// //     on_days.push_back(18);    
// //     on_days.push_back(23);    
// //     on_days.push_back(26);    
// //     return on_days;
// // }

// // void 
// // t000075::
// // operator ( ) ( basic::ptr<tester::test_printer> print )
// //     throw ( basic::fault ) {
    

    

// //     try {

// // 	ostringstream s;

// // 	days on_days = create_on_days();
    
// // 	month_on_day_frequency mf(on_days);

// // 	ptr<dates> ds = mf.generate(date(2,month::may,2008), 4);

// // 	ptr<dates> expected = t000075::expected_result();

// // 	if (ds->size() != expected->size())
// // 	    throw (basic::exception("frequency", "t000075::exec 1", 
// // 				    frequency::error_wrong_sequence));

// // 	dates::const_iterator it1 = ds->begin();
// // 	dates::const_iterator it2 = expected->begin();

// // 	s << "Expected dates: \n";
// // 	for (; it2 != expected->end(); ++it2)
// // 	    s << *it2 << "\n";
// // 	(*print)(s.str());
// // 	s.str("");

// // 	s << "Generated dates, not confirmed: \n";
// // 	for (; it1 != ds->end(); ++it1)
// // 	    s << *it1 << "\n";
// // 	(*print)(s.str());
// // 	s.str("");

// // 	if (ds != expected)
// // 	    throw (basic::exception("frequency", "t000075::exec 2", 
// // 				    frequency::error_wrong_sequence));

           
// // 	s << "Generated dates, confirmed: \n";
// // 	for (dates::const_iterator i = ds->begin(); i != ds->end(); ++i)
// // 	    s << *i << "\n";

// // 	(*print)(s.str());
// // 	s.str("");
// //     }
// //     catch (tenacitas::basic::fault e) {
	
// // 	print_fault ( e, print );
// //     }
    
    
// // }

// // // **************************************
// // // t000076

// // t000076::
// // t000076 () :
// //     tester::test("t000076", 
// // 	   "Creates a sequence of dates, based on a monthly by date frequency, "
// // 	   "such as: it happens every 4th 9th 14th 18th 23th and 26th, starting "
// // 	   "2008.5.4, for 4 months, every month") {}

// // t000076::
// // ~t000076() {}

// // ptr<dates> 
// // t000076::
// // expected_result() {
// //     ptr<dates> ds (new dates());

// //     //  ds->push_back(date(4,month::may,2008));
// //     ds->push_back(date(9,month::may,2008));
// //     ds->push_back(date(14,month::may,2008));
// //     ds->push_back(date(18,month::may,2008));
// //     ds->push_back(date(23,month::may,2008));
// //     ds->push_back(date(26,month::may,2008));

// //     ds->push_back(date(4,month::jun,2008));
// //     ds->push_back(date(9,month::jun,2008));
// //     ds->push_back(date(14,month::jun,2008));
// //     ds->push_back(date(18,month::jun,2008));
// //     ds->push_back(date(23,month::jun,2008));
// //     ds->push_back(date(26,month::jun,2008));

// //     ds->push_back(date(4,month::jul,2008));
// //     ds->push_back(date(9,month::jul,2008));
// //     ds->push_back(date(14,month::jul,2008));
// //     ds->push_back(date(18,month::jul,2008));
// //     ds->push_back(date(23,month::jul,2008));
// //     ds->push_back(date(26,month::jul,2008));

// //     ds->push_back(date(4,month::ago,2008));
// //     ds->push_back(date(9,month::ago,2008));
// //     ds->push_back(date(14,month::ago,2008));
// //     ds->push_back(date(18,month::ago,2008));
// //     ds->push_back(date(23,month::ago,2008));
// //     ds->push_back(date(26,month::ago,2008));

// //     return ds;
// // }

// // days
// // t000076::
// // create_on_days() {
// //     return t000075::create_on_days();
// // }

// // void 
// // t000076::
// // operator ( ) ( basic::ptr<tester::test_printer> print )
// //     throw ( basic::fault ) {
    

    

// //     try {

// // 	ostringstream s;

// // 	days on_days = create_on_days();
    
// // 	month_on_day_frequency mf(on_days);

// // 	ptr<dates> ds = mf.generate(date(4,month::may,2008), 4);

// // 	ptr<dates> expected = t000076::expected_result();

// // 	if (ds->size() != expected->size())
// // 	    throw (basic::exception("frequency", "t000076::exec 1", 
// // 				    frequency::error_wrong_sequence));

// // 	dates::const_iterator it1 = ds->begin();
// // 	dates::const_iterator it2 = expected->begin();

// // 	s << "Expected dates: \n";
// // 	for (; it2 != expected->end(); ++it2)
// // 	    s << *it2 << "\n";
// // 	(*print)(s.str());
// // 	s.str("");

// // 	s << "Generated dates, not confirmed: \n";
// // 	for (; it1 != ds->end(); ++it1)
// // 	    s << *it1 << "\n";
// // 	(*print)(s.str());
// // 	s.str("");

// // 	if (ds != expected)
// // 	    throw (basic::exception("frequency", "t000076::exec 2", 
// // 				    frequency::error_wrong_sequence));

           
// // 	s << "Generated dates, confirmed: \n";
// // 	for (dates::const_iterator i = ds->begin(); i != ds->end(); ++i)
// // 	    s << *i << "\n";

// // 	(*print)(s.str());
// // 	s.str("");
// //     }
// //     catch (tenacitas::basic::fault e) {
	
// // 	print_fault ( e, print );
// //     }
    
    
// // }


